e6da0cfff1e2f6822de31b81dba0c91163d52ad1,src/org/jgroups/JChannelFactory.java,JChannelFactory,close,#MuxChannel#,350

Before Change


                Multiplexer mux=entry.multiplexer;
                if(mux != null) {
                    all_closed=mux.close(); // closes JChannel if all MuxChannels are in closed state
                    mux.unregister(ch.getId());
                }
            }
            if(all_closed) {

After Change


            synchronized(entry) {
                Multiplexer mux=entry.multiplexer;
                if(mux != null) {
                    Address addr=entry.channel.getLocalAddress();
                    try {
                        mux.sendServiceDownMessage(ch.getId(), addr);
                    }
                    catch(Exception e) {
                        if(log.isErrorEnabled())
                            log.error("failed sending SERVICE_DOWN message", e);
                    }
                    all_closed=mux.close(); // closes JChannel if all MuxChannels are in closed state
                    //mux.unregister(ch.getId());